home *** CD-ROM | disk | FTP | other *** search
/ MacTech 1 to 12 / MacTech-vol-1-12.toast / Source / MacTech's Sprocket™ / SprocketGX / AppSpecific / DocFile.cp < prev    next >
Encoding:
Text File  |  1994-10-17  |  1.5 KB  |  90 lines  |  [TEXT/BROW]

  1. /*
  2.     File:        DocFile.cp
  3.                 
  4.     Contains:    A simple document file
  5.                 
  6.     Written by: Jon Summers
  7.     
  8.     Copyright:    © 1994 by Jon Summers, all rights reserved.
  9.  
  10.     Change History (most recent first):
  11.     
  12.  */
  13.  
  14. #include "DocFile.h"
  15. #include "AppLib.h"
  16.  
  17. TDocFile::TDocFile()
  18. : fHasDataFork(false),
  19.   fDataRefNum(kInvalidDataRefNum),
  20.   fHasRsrcFork(false),
  21.   fRsrcRefNum(kInvalidRsrcRefNum)
  22. {
  23. }
  24.  
  25. TDocFile::~TDocFile()
  26. {
  27.     Close();
  28. }
  29.     
  30. void  TDocFile::Close()
  31. {
  32.     CloseDataFork();
  33.     CloseRsrcFork();
  34. }
  35.  
  36. void  TDocFile::SetFSSpec(FSSpec* pFSSpec)
  37. {
  38.     fSpec = *pFSSpec;
  39.     fHasDataFork = true;
  40. }
  41.  
  42. void  TDocFile::SetForkAvail(Boolean theData, Boolean theRsrc)
  43. {
  44.     fHasDataFork = theData;
  45.     fHasRsrcFork = theRsrc;
  46. }
  47.  
  48. void  TDocFile::GetFSSpec(FSSpec* pFSSpec)
  49. {
  50.     *pFSSpec = fSpec;
  51. }
  52.  
  53. void  TDocFile::OpenDataFork(char thePermission)
  54. {
  55.     if (fHasDataFork)
  56.         if ( ! ValidDataRefNum(fDataRefNum))
  57.         {
  58.             fErr = FSpOpenDF(&fSpec, thePermission, &fDataRefNum);
  59.         }
  60. }
  61.  
  62. void  TDocFile::CloseDataFork()
  63. {
  64.     if (fHasDataFork)
  65.         if (ValidDataRefNum(fDataRefNum))
  66.             (void)FSClose(kInvalidDataRefNum);
  67.     fDataRefNum = kInvalidDataRefNum;
  68. }
  69.  
  70. void  TDocFile::OpenRsrcFork(char thePermission)
  71. {
  72.     if (fHasRsrcFork)
  73.         if ( ! ValidRsrcRefNum(fRsrcRefNum))
  74.         {
  75.             fRsrcRefNum = OpenRFPerm(fSpec.name, fSpec.vRefNum, thePermission);
  76.             fErr = ResError();
  77.             if (fErr)
  78.                 fRsrcRefNum = kInvalidDataRefNum;
  79.         }
  80. }
  81.  
  82. void  TDocFile::CloseRsrcFork()
  83. {
  84.     if (fHasRsrcFork)
  85.         if (ValidRsrcRefNum(fRsrcRefNum))
  86.             (void)FSClose(kInvalidRsrcRefNum);
  87.     fRsrcRefNum = kInvalidDataRefNum;
  88. }
  89.     
  90.